%% main.tex --- файл-обертка для диплома

\documentclass[russian,utf8,simple,floatsection]{eskdtext} 

\include{defs}  % вставляем содержимое служебных инструкций из defs.tex

\ESKDcolumnII{Разработка пользовательского интерфейса}
\setcounter{section}{6}
\begin{document}
\section{Разработка пользовательского интерфейса.}
Интерфейс пользователя - эта та часть программы, которая находится у
всех на виду. Некоторые программисты склонны оставлять дизайн
интерфейса пользователя на потом, считая, что реальное достоинство
приложения - его программный ко. который и требует большего
внимания. Однако часто возникает недовольство пользователей из-за
неудачно подобранных шрифтов, непонятного содержимого экрана и
скорости его прорисовывания, поэтому работу над интерфейсом также
нужно воспринимать серьезно. Пользователь не вши, программного кода,
зато интерфейс (хороший или плохой) всегда перед ним.

\emph{Разработка эффективных форм}

Формы - это строительные блоки интерфейса пользователя. Хороший дизайн
форм включает нечто большее, чем просто добавление элементов
управления и программирование процедур обработки событии. Чтобы
создать хорошо спроектированную форму, вы должны уяснить ее
назначение, способ и время использования, а также ее связи с другими
элементами программы. Кроме того в приложении может находиться
несколько форм, каждая из которых будет отображаться по мере
необходимости. Одни пользователи широко используют многозадачность
Windows, другие предпочитают работать только с одним
приложением. Необходимо помнить об этом во время разработки интерфейса
пользователя (UI) Вы должны максимально реализовать все возможности
Windows, чтобы пользователи с любыми навыками работы могли эффективно
применять созданное вами приложение. 

\emph{Проектирование форм ввода данных}

Особый вид форм - формы, предназначенные для ввода данных. Они
позволяют пользователь в нужном ему темпе, не оглядываясь на
программиста. Общий смысл и основное правы: если пользователь
собирается ввести в базу данных 10000 записей, вероятно, он не
подтверждать ввод каждой записи. В форме ввода данных необходимо
максимально использовать свободное пространство, поскольку открытие и
закрытие дополнительных форм существенно замедляет работу. При
разработке форм ввода данных основное внимание следует уделить
скорости их работы. Чтобы максимально ускорить процесс ввода данных,
следуйте приведенным ниже основным правилам. 

\begin{itemize}
\item Всегда назначайте клавиатурные эквиваленты команд; не требуйте
  обязательного использования мыши. (Кстати, этот совет хорош для всех
  форм программы, а не только для форм ввода данных.) 
\item Расположение элементов должно быть согласовано с задачами
  пользователя. Другими ело вами, не заставляйте пользователя
  перепрыгивать из раздела в раздел; при вводе информации это совсем
  не обязательно. 
\item Не заставляйте пользователя выполнять лишнюю работу. Другими
  словами, если информация, содержащаяся в полях со 2-го по 10-е,
  необходима только, когда первое поле имеет определенное значение, не
  нужно заставлять пользователя заполнять все поля подряд. же время,
  не ставьте работу формы в зависимость от содержимого отдельных
  полей. В противном случае это может существенно замедлить работу
  пользователя.
\item Используйте заметную, но ненавязчивую обратную связь с
  пользователем. Хороший пример - работа редактора программного кода
  Visual Basic, который проверяет правильной написания переменных и
  констант.
\item Если возможно, выполняйте добавление и редактирование записей в
  одной и той же форме, тогда пользователю не придется осваивать
  несколько методов доступа к одним и тем желанным. 
\end{itemize}

\emph{Работа с несколькими формами}

Если интерфейс пользователя должен содержать несколько форм, вам
предстоит принять самое важное решение: какой использовать вид
интерфейса- однодокументный (SDI) или многодокументный (MDI). 

В SDl-приложениях окна форм появляются совершенно независимо друг от
друга. Однако, не имеет значения какой тип интерфейса SDI или MD1
выбран; взаимодействие пользователя с формами происходит одинаково
-посредством обработки событий, поступающих от элементов управления
формы. Поэтому, если в вашем приложении предусмотрено несколько форм
программу необходимо написать так, чтобы у пользователей не было
возможности нарушить предписанные ход ее выполнения (например, у
пользователя не должно быть средств вывести форму, для которой еще не
готова информация). 

\emph{Эффективные меню}

Еще одна важная часть разработки форм - создание содержательных и
эффективных меню. Приведем некоторые важные рекомендации:
\begin{itemize}
\item Следуйте стандартным соглашениям о расположении пунктов меню
  принятым в Windows File, Edit, View, и т.д. 
\item Группируйте пункты меню в логическом порядке и по содержанию.
\item Для группировки пунктов в раскрывающихся меню используйте
  разделительные линии 
\item Избегайте избыточных меню.
\item Избегайте пунктов меню верхнего уровня, не содержащих
  раскрывающихся меню 
\item Не забывайте использовать символ троеточия для обозначения
  пунктов меню, активизирующих диалоговые окна. 
\item Обязательно используйте клавиатурные эквиваленты команд и "горячие" клавиши.
\item Помещайте на панель инструментов часто используемые команды
  меню.
\end{itemize}

\emph{Ощущение скорости}

Ощущение - это реальность. Здесь мы попытаемся объяснить, как ощущения
пользователя могут повлиять на то, понравится ему ваша программа или
нет. Простой пример - скорость работы приложения. У вас может быть
самый быстродействующий программный код, но это ничего не значит, если
с точки зрения пользователя он работает медленно. Когда пользователи
жалуется на скорость, программисты защищаются, утверждая, что
"пользователь не знает, что делает программа". Однако, если
воспользоваться некоторыми уловками, то можно сделать та что будет
казаться, будто программа работает быстрее. 

Пользователь гораздо более расположен к ожиданию, если считает, что
компьютер работает с максимальной скоростью. Хороший пример- загрузка
Windows, которая обычно требует достаточно много времени. Однако вывод
графики, сопровождающие звуки, шум жесткого диска отвлекают настолько,
что пользователь не ощущает ожидания. Описанная ниже техника поможет в
создании "более быстрых" приложений. 

\emph{Информируйте пользователя о ходе процесса}

Когда есть видимость работы приложения, пользователи более легко
переносят длительное ожидание в работе программы. Один из способов
информирования пользователя о ходе выполнения работы - использовать в
форме индикатор процесса. Если вы обновляете записи базы данных, можно
использовать такой индикатор для отображения числа записей, над
которыми операция уже произведена. Для этого добавьте пару строк кода
обновляющих показания индикатора по мере перехода к следующим
записям. 

\emph{Выводы по проектированию пользовательского интерфейса} 

Хотя ни одно ухищрение не гарантирует создания удачного интерфейса
пользователя, плохой интерфейс гарантирует отсутствие пользователей
вашей программы. Однако при стремительном появлении новшеств, в сфере
пользовательских интерфейсов, понятие "хорошего" интерфейса очень
быстро изменяется. Возьмем, например, процесс настройки часов
видеомагнитофона. Раньше часы программировали "вслепую" кнопками и
переключателями, потом стали применяться дисплеи, для которых
использовался экран телевизора, а теперь в некоторых моделях этот
процесс выполняется автоматически по радиосигналу. Так и интерфейс
пользователя программ будет "эволюционировать" по мере того как
индустрия будет устанавливать новые стандарты, и вы, в свою очередь,
должны быть всегда в курсе, как в наибольшей степени удовлетворить
ожидания пользователя. 
\end{document}
